package com.jierui.meter.frontend.service.impl;

import com.jierui.meter.frontend.domain.DO.ShowIndicesDO;
import com.jierui.meter.frontend.mapper.ShowIndicesMapper;
import com.jierui.meter.frontend.service.ShowIndicesService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;


@Service
public class ShowIndicesServiceImpl implements ShowIndicesService {


    @Autowired
    ShowIndicesMapper showIndicesMapper;

	@Override
	public ShowIndicesDO selectIndices(String year, String scope, String tg) {

		ShowIndicesDO indicesObj = showIndicesMapper.selectIndices(year, scope, tg).get(0);
		
		return indicesObj;
	}

	@Override
	public ShowIndicesDO selectByDateAndON7SUM(String year, String scope, String orgNo7) {
		ShowIndicesDO showIndicesDO = showIndicesMapper.selectByDateAndON7SUM(year, scope, orgNo7);
		if (showIndicesDO == null) {
			return new ShowIndicesDO();
		}
		return showIndicesDO;
	}


//
//    @Override
//    public Map<String,Object> selectErrorAndMeter(String calerror, String checkstatus, String orgInput,
//                                                  String idInput, String year, String scope, String tg,
//                                                  Integer page, Integer size) {
//
//        Map<String,Object> result = new HashMap<>();
//        //查询数据库
//        PageHelper.startPage(page, size);
//        List<TErrorComputingAndMeterDO> dos = tErrorComputingMapper.selectErrorAndMeter(calerror, checkstatus, orgInput, idInput, year, scope, tg);
//        PageInfo<TErrorComputingAndMeterDO> pageInfo = new PageInfo<>(dos);
//        Page<TErrorComputingAndMeterDO> pageDO = new MyPageImpl<>(dos, PageRequest.of(page, size), pageInfo.getTotal());
//        List<TErrorComputingAndMeterVO> data = new ArrayList<>();
//        dos.stream().forEach(errDO ->{
//            data.add(BeanUtil.ErrorDO2VO(errDO));
//        });
//        //当前页
//        result.put("cur_page", page);
//        //每页数量
//        result.put("page_size", size);
//        //总页数
//        result.put("total_page", pageDO.getTotalPages());
//        result.put("list", data);
//        return result;
//    }
//
//    @Override
//    public Map<String, Object> selectByAlarmCode(String year, String scope, String tg, Integer page, Integer size) {
//        Map<String, Object> result = new HashMap<>();
//        PageHelper.startPage(page,size);
//        List<TErrorComputingResultsDO> dos = tErrorComputingMapper.selectByAlarmCode(year, scope, tg);
//        PageInfo<TErrorComputingResultsDO> pageInfo = new PageInfo<>(dos);
//        Page<TErrorComputingResultsDO> pageDO = new MyPageImpl<>(dos, PageRequest.of(page, size), pageInfo.getTotal());
//        //当前页
//        result.put("cur_page", page);
//        //每页数量
//        result.put("page_size", size);
//        //总页数
//        result.put("total_page", pageDO.getTotalPages());
//        List<StatisticsByExceptionVO> data = new ArrayList<>();
//
//
//        if (dos.isEmpty()) {
//            result.put("list", data);
//            return result;
//        }
//
//        //查询所有异常数量
//        int errorNum = tErrorComputingMapper.selectAllErrorNum(year, scope, tg);
//
//        dos.stream().forEach(errorDO -> {
//            StatisticsByExceptionVO vo = new StatisticsByExceptionVO();
//            vo.setAlarm_code(errorDO.getAlarmCode());
//            vo.setAlarm_name(ExceptionCodeEnum.valueOf(errorDO.getAlarmCode()).getName());
//            vo.setSlarm_num(errorDO.getAlarmNum());
//            vo.setAlarm_rate(Math.round(errorDO.getAlarmNum() / errorNum * 10000) / 10000);
//        });
//
//
//        result.put("list", data);
//        return result;
//
//    }
//
//    /**
//     * 3.1电能表按供电单位统计接口
//     *
//     * @param year
//     * @param scope
//     * @param tg
//     * @return
//     */
//    @Override
//    public Map<String,Object> statisticsByPowerSupplyUnit(String year, String scope, String tg, Integer page,Integer size) {
//
//
//        Map<String,Object> result = new HashMap<>();
//        //查询电能表总数
//        PageHelper.startPage(page,size);
//        List<TBuComputingIntervalDO> meterList = tBuComputingIntervalService.getTotalMeterNum(year, scope, tg);
//        //如果没有数据 则返回空
//        if (meterList.isEmpty()) {
//            //当前页
//            result.put("cur_page", page);
//            //每页数量
//            result.put("page_size", size);
//            //总页数
//            result.put("total_page", 1);
//            result.put("list", null);
//            return result;
//        }
//        List<String> cityOrgNameList = meterList.stream().map(dto -> dto.getCityOrgName()).collect(Collectors.toList());
//        PageInfo<TBuComputingIntervalDO> pageInfo = new PageInfo<>(meterList);
//        Page<TBuComputingIntervalDO> pageDO = new MyPageImpl<>(meterList, PageRequest.of(page, size), pageInfo.getTotal());
//
//        //查询对应电能表异常数
//        List<TErrorComputingResultsDO> errorList = tErrorComputingMapper.selectInvalidMeterNumByCityOrgName(year, scope, tg, cityOrgNameList);
//        Map<String, TErrorComputingResultsDO> errorMap = errorList.stream().collect(Collectors.toMap(TErrorComputingResultsDO::getCityOrgName, Function.identity()));
//        List<TBuComputingIntervalVO> data = new ArrayList<>();
//        for (TBuComputingIntervalDO meter : meterList) {
//            TBuComputingIntervalVO vo = new TBuComputingIntervalVO();
//            vo.setCity_org_name(meter.getCityOrgName());
//            vo.setMeter_num(meter.getMeterNum());
//            //观察表暂无数据
//            vo.setTest_meter_num(0);
//            vo.setTest_meter_rate(0f);
//
//            if (errorMap.containsKey(meter.getCityOrgName())) {
//                TErrorComputingResultsDO errorDO = errorMap.get(meter.getCityOrgName());
//                vo.setInvalid_meter_num(errorDO.getInvalidMeterNum());
//                vo.setInvalid_meter_rate(Math.round(errorDO.getInvalidMeterNum() / meter.getMeterNum() * 10000) / 10000);
//                vo.setNormal_meter_num(meter.getMeterNum() - errorDO.getInvalidMeterNum());
//                vo.setNormal_meter_rate(1f - vo.getNormal_meter_rate());
//            } else {
//                //如果异常表没有数据 则全部电表为正常表
//                vo.setInvalid_meter_num(0);
//                vo.setInvalid_meter_rate(0);
//                vo.setNormal_meter_num(meter.getMeterNum());
//                vo.setNormal_meter_rate(1f);
//            }
//        }
//        //当前页
//        result.put("cur_page", page);
//        //每页数量
//        result.put("page_size", size);
//        //总页数
//        result.put("total_page", pageDO.getTotalPages());
//        result.put("list", data);
//        return null;
//    }
//
//
//    /**
//     * 查询异常表数量 以供电单位分组
//     *
//     * @return
//     */
//    public List<TErrorComputingResultsDO> selectInvalidMeterNumByCityOrgName(String year, String scope, String tg, List<String> cityOrgNameList) {
//
//        return tErrorComputingMapper.selectInvalidMeterNumByCityOrgName(year, scope, tg, cityOrgNameList);
//    }

}
